package tables

// Courseware 课件素材表，对应教学中的具体课件、素材文件，可以是视频、音频、文档，对应文件实体
type Courseware struct {
	Id                 int64  `json:"id,string" gorm:"primaryKey;column:id"` // 课件id
	Code               string `json:"code"`                                  // 课件编号
	FileKind           int    `json:"fileKind"`                              // 课件类型,视频、pdf、音频(视频需要额外处理)，1-视频；2-音频；3-pdf
	Name               string `json:"name"`                                  // 课件名称
	ExtensionName      string `json:"extensionName"`                         // 文件扩展名
	FilePath           string `json:"filePath"`                              // 文件路径
	FileSize           int64  `json:"fileSize,string"`                       // 文件大小
	MD5                string `json:"md5"`                                   // 文件MD5
	With               string `json:"with"`                                  // 宽，页面显示时调整用，会有默认值
	Height             string `json:"height"`                                // 高，页面显示时调整用，会有默认值
	Label              string `json:"label"`                                 // 标签
	CoursewareFolderId int64  `json:"coursewareFolderId,string"`             // 课件目录id
	AllowDownload      bool   `json:"allowDownload"`                         // 是否允许下载
	VectorStatus       int    `json:"vectorStatus"`                          // 数据向量化状态，1-未转换，2-处理中，3-处理完成
	IsPublic           bool   `json:"isPublic"`                              // 素材是否公开，被公开的素材可以被其他人创建课程时引用
	AutoCreateInfo
}

func (r *Courseware) TableName() string {
	return "lms_courseware"
}

type CoursewareExtend struct {
	CoursewareId      int64   `json:"coursewareId,string"`      // 课件素材id
	DownloadNum       int64   `json:"downloadNum,string"`       // 下载次数
	TotalPersonNum    int64   `json:"totalPersonNum,string"`    // 总学习人数
	TotalPersonTime   int64   `json:"totalPersonTime,string"`   // 总学习人次
	TotalLearningTime int64   `json:"totalLearningTime,string"` //总学习时长
	CollectorNum      int64   `json:"collectorNum,string"`      // 收藏数
	LikeNum           int64   `json:"likeNum,string"`           // 点赞数
	Ranking           float32 `json:"ranking"`                  //评分
	RankNum           int64   `json:"rankNum"`                  // 评分人数
	CommentNum        int64   `json:"commentNum,string"`        // 评论数
	CompletedStudyNum int64   `json:"completedStudyNum,string"` // 完成学习的人数
}

func (r *CoursewareExtend) TableName() string {
	return "lms_courseware_extend"
}
